﻿using System;
using System.Diagnostics;
namespace BreukTrainer.Model
{
   /// <summary>
   /// Hulp klasse
   /// Berekent Grootste gemene deler
   ///          Kleinste gemene veelvoud
   /// Checkt strings voor getallen
   /// </summary>
    
    public static class Hulp
    {

        /// <summary>
        /// Grootste gemene deler
        /// </summary>
        /// <param name="getal1">Eerste getal</param>
        /// <param name="getal2">Tweede getal</param>
        /// <returns>GGD</returns>
        public static int GGD(int getal1, int getal2)
        {
            Debug.WriteLine("GGD called");
            int temp;
            while (getal2 != 0)
            {
                temp = getal1 % getal2;
                getal1 = getal2;
                getal2 = temp;
            }
            Debug.WriteLine("GGD is " + getal1);
            return getal1;
        }

        /// <summary>
        /// Kleinste gemeen veelvoud
        /// </summary>
        /// <param name="getal1">Eerste getal</param>
        /// <param name="getal2">Tweede getal</param>
        /// <returns>KGV</returns>
        public static int KGV(int getal1, int getal2)
        {
            Debug.WriteLine("KGV called");
            var ggd = Hulp.GGD(getal1,getal2);
            Debug.WriteLine("KGV is " + ((getal1 * getal2) / ggd));
            return (getal1 * getal2) / ggd;
        }

        /// <summary>
        /// Controleert of een string wel een getal is.
        /// </summary>
        /// <param name="val">De string die gecontroleerd moet worden</param>
        /// <param name="NumberStyle">In dit geval Integer</param>
        /// <returns>true of false</returns>
        public static bool isNumeric(string val, System.Globalization.NumberStyles NumberStyle)
        {
            Debug.WriteLine("isNumeric called");
            Double result;
            return Double.TryParse(val, NumberStyle,
                System.Globalization.CultureInfo.CurrentCulture, out result);
        }
      
    }
}
